﻿using Co9320.NamaAlert.CommunicationControl;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using LiveInfo = Co9320.NamaAlert.CommunicationControl.LiveInfo;

namespace TagServiceTest
{
    
    
    /// <summary>
    ///RequestTransactor_LiveInfoTest のテスト クラスです。すべての
    ///RequestTransactor_LiveInfoTest 単体テストをここに含めます
    ///</summary>
	[TestClass()]
	public class RequestTransactor_LiveInfoTest
	{


		private TestContext testContextInstance;

		/// <summary>
		///現在のテストの実行についての情報および機能を
		///提供するテスト コンテキストを取得または設定します。
		///</summary>
		public TestContext TestContext
		{
			get
			{
				return testContextInstance;
			}
			set
			{
				testContextInstance = value;
			}
		}

		#region 追加のテスト属性
		// 
		//テストを作成するときに、次の追加属性を使用することができます:
		//
		//クラスの最初のテストを実行する前にコードを実行するには、ClassInitialize を使用
		//[ClassInitialize()]
		//public static void MyClassInitialize(TestContext testContext)
		//{
		//}
		//
		//クラスのすべてのテストを実行した後にコードを実行するには、ClassCleanup を使用
		//[ClassCleanup()]
		//public static void MyClassCleanup()
		//{
		//}
		//
		//各テストを実行する前にコードを実行するには、TestInitialize を使用
		//[TestInitialize()]
		//public void MyTestInitialize()
		//{
		//}
		//
		//各テストを実行した後にコードを実行するには、TestCleanup を使用
		//[TestCleanup()]
		//public void MyTestCleanup()
		//{
		//}
		//
		#endregion


		/// <summary>
		///StationId のテスト
		///</summary>
		[TestMethod()]
		[DeploymentItem("TagService.dll")]
		public void StationIdTest()
		{
			LiveInfo Target = new LiveInfo("hoge", "piyo");
	
		}

		/// <summary>
		///Caster のテスト
		///</summary>
		[TestMethod()]
		[DeploymentItem("TagService.dll")]
		public void CasterTest()
		{
			LiveInfo Target = new LiveInfo("hoge", "piyo");
			Assert.AreEqual<string>("piyo", Target.Caster);
		}


		/// <summary>
		///op_Inequality のテスト
		///</summary>
		[TestMethod()]
		public void op_InequalityTest()
		{
			LiveInfo Lp = new LiveInfo("hoge", "piyo");
			LiveInfo Rp = new LiveInfo("hoge", "piyo");

			Assert.IsFalse(Lp != Rp);

			Rp = new LiveInfo("piyo", "hoge");
			Assert.IsTrue(Lp!= Rp);

			Assert.IsFalse(Lp != Lp);
		}

		/// <summary>
		///op_Equality のテスト
		///</summary>
		[TestMethod()]
		public void op_EqualityTest()
		{
			LiveInfo Lp = new LiveInfo("hoge", "piyo");
			LiveInfo Rp = new LiveInfo("hoge", "piyo");

			Assert.IsTrue(Lp == Rp);

			Rp = new LiveInfo("Hoge", "Piyo");
			Assert.IsFalse(Lp == Rp);

			Assert.IsTrue(Lp == Lp);

		}

		/// <summary>
		///GetHashCode のテスト
		///</summary>
		[TestMethod()]
		public void GetHashCodeTest()
		{
			LiveInfo Lp = new LiveInfo("hoge", "piyo");
			LiveInfo Rp = new LiveInfo("hoge", "piyo");

			Assert.IsTrue(Lp.GetHashCode() == Rp.GetHashCode());

			Rp = new LiveInfo("Hoge", "piyo");
			Assert.IsTrue(Lp.GetHashCode() != Rp.GetHashCode());
		}


		/// <summary>
		///Equals のテスト
		///</summary>
		[TestMethod()]
		public void EqualsTest1()
		{
			LiveInfo Lp = new LiveInfo("hoge", "piyo");
			LiveInfo Rp = new LiveInfo("hoge", "piyo");

			Assert.IsTrue(Lp.Equals(Rp));
			Assert.IsTrue(Rp.Equals(Lp));
			Assert.IsTrue(Rp.Equals(Rp));

		}
	}
}
